package com.qdhh.enrollment.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 学生档案实体类 - 对应student_profiles表（符合文档设计）
 * 从外部系统同步的学生档案信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("student_profiles")
public class StudentProfile {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id; // 档案ID

    @TableField("student_no")
    private String studentNo; // 学号（主关联键，唯一，用于身份认证匹配）

    @TableField("phone")
    private String phone; // 手机号（辅助关联字段）

    @TableField("name")
    private String name; // 真实姓名

    @TableField("gender")
    private String gender; // 性别（男/女）

    @TableField("college")
    private String college; // 学院

    @TableField("major")
    private String major; // 专业

    @TableField("class_name")
    private String className; // 班级

    @TableField("email")
    private String email; // 邮箱

    @TableField("sync_from")
    private String syncFrom; // 数据来源（学工系统/教务系统/手动录入等）

    @TableField("sync_at")
    private LocalDateTime syncAt; // 最后同步时间

    @TableField("deleted")
    private Integer deleted; // 软删除

    @TableField("version")
    private Integer version; // 乐观锁版本号

    @TableField("created_at")
    private LocalDateTime createdAt; // 创建时间

    @TableField("updated_at")
    private LocalDateTime updatedAt; // 更新时间
}
